🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / desktopApp / src / main / kotlin / org / meshtastic / desktop / stub / NoopStubs.kt
Displaying Raw • Download
desktopApp/src/main/kotlin/org/meshtastic/desktop/stub/NoopStubs.kt bf929c20f274232e0eb8ddc19b2dc82403e99e5b (bf929c20) Text, 5.96 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tf0883e@fileTb4b4b4:Te6edf3SuppressTb4b4b4(Ta5d6ff"Ta5d6ffEmptyFunctionBlockTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffTooManyFunctionsTa5d6ff"Tb4b4b4)
Tff7b72package T7ee787org.meshtastic.desktop.stub
Tff7b72import T7ee787co.touchlab.kermit.Logger
Tff7b72import T7ee787kotlinx.coroutines.CoroutineScope
Tff7b72import T7ee787kotlinx.coroutines.Dispatchers
Tff7b72import T7ee787kotlinx.coroutines.SupervisorJob
Tff7b72import T7ee787kotlinx.coroutines.flow.Flow
Tff7b72import T7ee787kotlinx.coroutines.flow.MutableSharedFlow
Tff7b72import T7ee787kotlinx.coroutines.flow.MutableStateFlow
Tff7b72import T7ee787kotlinx.coroutines.flow.asFlow
Tff7b72import T7ee787kotlinx.coroutines.flow.emptyFlow
Tff7b72import T7ee787org.meshtastic.core.model.ConnectionState
Tff7b72import T7ee787org.meshtastic.core.model.DeviceType
Tff7b72import T7ee787org.meshtastic.core.model.InterfaceId
Tff7b72import T7ee787org.meshtastic.core.model.MeshActivity
Tff7b72import T7ee787org.meshtastic.core.network.repository.MQTTRepository
Tff7b72import T7ee787org.meshtastic.core.repository.AppWidgetUpdater
Tff7b72import T7ee787org.meshtastic.core.repository.DataPair
Tff7b72import T7ee787org.meshtastic.core.repository.Location
Tff7b72import T7ee787org.meshtastic.core.repository.LocationRepository
Tff7b72import T7ee787org.meshtastic.core.repository.MeshLocationManager
Tff7b72import T7ee787org.meshtastic.core.repository.MeshWorkerManager
Tff7b72import T7ee787org.meshtastic.core.repository.PlatformAnalytics
Tff7b72import T7ee787org.meshtastic.core.repository.RadioInterfaceService
Tff7b72import T7ee787org.meshtastic.core.repository.TransportDisconnectReason
Tff7b72import T7ee787org.meshtastic.proto.MqttClientProxyMessage
Tff7b72import T7ee787org.meshtastic.mqtt.ConnectionState Tff7b72as Te6edf3MqttConnectionState
Tff7b72import T7ee787org.meshtastic.proto.Position Tff7b72as Te6edf3ProtoPosition
T8b949e/**
* No-op stub implementations for truly platform-specific interfaces.
*
* These stubs exist ONLY for interfaces that have no `commonMain` implementation and require Android-specific APIs
* (BLE/USB transport, notifications, WorkManager, location services, broadcasts, widgets). All other interfaces use
* real `commonMain` implementations wired through the generated Koin K2 modules.
*
* As real desktop implementations become available (e.g., serial transport, TCP transport), they replace individual
* stubs in [desktopModule].
*/
Tff7b72private Tff7b72const Tff7b72val Te6edf3TAG Tff7b72= Ta5d6ff"Ta5d6ffNoopStubTa5d6ff"
Tff7b72private Tff7b72fun Td2a8fflogWarnTb4b4b4(Te6edf3messageTb4b4b4: Tffa657StringTb4b4b4) Tb4b4b4{
Te6edf3LoggerTb4b4b4.Te6edf3wTb4b4b4(Te6edf3tag Tff7b72= Te6edf3TAGTb4b4b4) Tb4b4b4{ Te6edf3message Tb4b4b4}
Tb4b4b4}
T8b949e// region Transport / Radio Stubs (Android BLE/USB — no commonMain impl)
Tff7b72class T56d364NoopRadioInterfaceService Tb4b4b4: Te6edf3RadioInterfaceService Tb4b4b4{
Tff7b72override Tff7b72val Te6edf3supportedDeviceTypesTb4b4b4: Te6edf3ListTff7b72<Te6edf3DeviceTypeTff7b72> Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3connectionState Tff7b72= Te6edf3MutableStateFlowTff7b72<Te6edf3ConnectionStateTff7b72>Tb4b4b4(Te6edf3ConnectionStateTb4b4b4.Te6edf3DisconnectedTb4b4b4)
Tff7b72override Tff7b72val Te6edf3currentDeviceAddressFlow Tff7b72= Te6edf3MutableStateFlowTff7b72<Tffa657String?Tff7b72>Tb4b4b4(Tff7b72nullTb4b4b4)
Tff7b72override Tff7b72fun Td2a8ffisMockTransportTb4b4b4(Tb4b4b4)Tb4b4b4: Tffa657Boolean Tff7b72= Tff7b72false
Tff7b72override Tff7b72val Te6edf3receivedData Tff7b72= Te6edf3MutableSharedFlowTff7b72<Te6edf3ByteArrayTff7b72>Tb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3meshActivityTb4b4b4: Te6edf3FlowTff7b72<Te6edf3MeshActivityTff7b72> Tff7b72= Te6edf3MutableSharedFlowTff7b72<Te6edf3MeshActivityTff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFlowTb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3connectionErrorTb4b4b4: Te6edf3FlowTff7b72<Tffa657StringTff7b72> Tff7b72= Te6edf3MutableSharedFlowTff7b72<Tffa657StringTff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFlowTb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72fun Td2a8ffsendToRadioTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4) Tb4b4b4{
Te6edf3logWarnTb4b4b4(Ta5d6ff"Ta5d6ffNoopRadioInterfaceService.sendToRadio(Tffd700${Te6edf3bytesTb4b4b4.Te6edf3sizeTffd700}Ta5d6ff bytes)Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffresetReceivedBufferTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// No-op: this stub never buffers bytes.
Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffconnectTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3logWarnTb4b4b4(Ta5d6ff"Ta5d6ffNoopRadioInterfaceService.connect()Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffdisconnectTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3logWarnTb4b4b4(Ta5d6ff"Ta5d6ffNoopRadioInterfaceService.disconnect()Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffrestartTransportTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3logWarnTb4b4b4(Ta5d6ff"Ta5d6ffNoopRadioInterfaceService.restartTransport()Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffgetDeviceAddressTb4b4b4(Tb4b4b4)Tb4b4b4: Tffa657String? Tff7b72= Tff7b72null
Tff7b72override Tff7b72fun Td2a8ffsetDeviceAddressTb4b4b4(Te6edf3deviceAddrTb4b4b4: Tffa657String?Tb4b4b4)Tb4b4b4: Tffa657Boolean Tff7b72= Tff7b72false
Tff7b72override Tff7b72fun Td2a8fftoInterfaceAddressTb4b4b4(Te6edf3interfaceIdTb4b4b4: Te6edf3InterfaceIdTb4b4b4, Te6edf3restTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Tffa657String Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72override Tff7b72fun Td2a8ffonConnectTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffonDisconnectTb4b4b4(Te6edf3isPermanentTb4b4b4: Tffa657BooleanTb4b4b4, Te6edf3errorMessageTb4b4b4: Tffa657String?Tb4b4b4, Te6edf3reasonTb4b4b4: Te6edf3TransportDisconnectReason?Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffhandleFromRadioTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4) Tb4b4b4{Tb4b4b4}
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffInjectDispatcherTa5d6ff"Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3serviceScopeTb4b4b4: Te6edf3CoroutineScope Tff7b72= Te6edf3CoroutineScopeTb4b4b4(Te6edf3SupervisorJobTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3DispatchersTb4b4b4.Te6edf3DefaultTb4b4b4)
Tb4b4b4}
T8b949e// endregion
T8b949e// region Notification / Platform Stubs (Android-only)
Tff7b72class T56d364NoopPlatformAnalytics Tb4b4b4: Te6edf3PlatformAnalytics Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8fftrackTb4b4b4(Te6edf3eventTb4b4b4: Tffa657StringTb4b4b4, Tff7b72vararg Te6edf3propertiesTb4b4b4: Te6edf3DataPairTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffsetDeviceAttributesTb4b4b4(Te6edf3firmwareVersionTb4b4b4: Tffa657StringTb4b4b4, Te6edf3modelTb4b4b4: Tffa657StringTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72val Te6edf3isPlatformServicesAvailableTb4b4b4: Tffa657Boolean Tff7b72= Tff7b72false
Tb4b4b4}
Tff7b72class T56d364NoopAppWidgetUpdater Tb4b4b4: Te6edf3AppWidgetUpdater Tb4b4b4{
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffupdateAllTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
T8b949e// endregion
T8b949e// region WorkManager / Location Stubs (Android-only)
Tff7b72class T56d364NoopMeshWorkerManager Tb4b4b4: Te6edf3MeshWorkerManager Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8ffenqueueSendMessageTb4b4b4(Te6edf3packetIdTb4b4b4: Tffa657IntTb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tff7b72class T56d364NoopMeshLocationManager Tb4b4b4: Te6edf3MeshLocationManager Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8ffstartTb4b4b4(Te6edf3scopeTb4b4b4: Te6edf3CoroutineScopeTb4b4b4, Te6edf3sendPositionFnTb4b4b4: Te6edf3suspend Tb4b4b4(Te6edf3ProtoPositionTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffrestartTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffstopTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tff7b72class T56d364NoopLocationRepository Tb4b4b4: Te6edf3LocationRepository Tb4b4b4{
Tff7b72override Tff7b72val Te6edf3receivingLocationUpdates Tff7b72= Te6edf3MutableStateFlowTb4b4b4(Tff7b72falseTb4b4b4)
Tff7b72override Tff7b72fun Td2a8ffgetLocationsTb4b4b4(Tb4b4b4)Tb4b4b4: Te6edf3FlowTff7b72<Te6edf3LocationTff7b72> Tff7b72= Te6edf3emptyFlowTb4b4b4(Tb4b4b4)
Tb4b4b4}
T8b949e// endregion
T8b949e// region Network Stubs (MQTT — not yet available on Desktop)
Tff7b72class T56d364NoopMQTTRepository Tb4b4b4: Te6edf3MQTTRepository Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8ffdisconnectTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72val Te6edf3proxyMessageFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3MqttClientProxyMessageTff7b72> Tff7b72= Te6edf3emptyFlowTb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72fun Td2a8ffpublishTb4b4b4(Te6edf3topicTb4b4b4: Tffa657StringTb4b4b4, Te6edf3dataTb4b4b4: Te6edf3ByteArrayTb4b4b4, Te6edf3retainedTb4b4b4: Tffa657BooleanTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72val Te6edf3connectionState Tff7b72= Te6edf3MutableStateFlowTff7b72<Te6edf3MqttConnectionStateTff7b72>Tb4b4b4(Te6edf3MqttConnectionStateTb4b4b4.Te6edf3DisconnectedTb4b4b4.Te6edf3IdleTb4b4b4)
Tb4b4b4}
T8b949e// endregion
Served by rngit 1.5.2 - Generated in 0.12s